{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true,
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "1. 本文介绍如何将nc文件切片然后保存为一个tiff文件;\n",
    "2. 本质上要分享的是如何将一个numpy数据矩阵保存为一个tiff文件。\n",
    "\n",
    "## 加载包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import netCDF4 as nc\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import rasterio"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-13-a1cca672088d>:2: DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.\n",
      "Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\n",
      "  raw_tmp_data = np.array(nc_data.variables['tmp'])\n"
     ]
    }
   ],
   "source": [
    "nc_data = nc.Dataset(\"./数据集/cru_ts4.05.1901.2020.tmp.dat.nc\")\n",
    "print(nc_data.variables['tmp'])"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-31-2e0fc16a3f19>:1: DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.\n",
      "Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\n",
      "  raw_tmp_data = np.array(nc_data.variables['tmp'])\n"
     ]
    }
   ],
   "source": [
    "raw_tmp_data = np.array(nc_data.variables['tmp'])\n",
    "tmp_missing_value = nc_data.variables['tmp'].missing_value"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "outputs": [
    {
     "data": {
      "text/plain": "9.96921e+36"
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tmp_missing_value"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "outputs": [],
   "source": [
    "# 切片\n",
    "matrix1 = raw_tmp_data[0, :, :][::-1, :]"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "outputs": [],
   "source": [
    "## 替换缺失值\n",
    "matrix1[matrix1 == tmp_missing_value] = np.nan"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "outputs": [
    {
     "data": {
      "text/plain": "<matplotlib.image.AxesImage at 0x7fc4235576d0>"
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "ax.imshow(matrix1)\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/anaconda3/envs/devc/lib/python3.8/site-packages/rasterio/__init__.py:230: NotGeoreferencedWarning: Dataset has no geotransform, gcps, or rpcs. The identity matrix be returned.\n",
      "  s = writer(path, mode, driver=driver,\n"
     ]
    }
   ],
   "source": [
    "def array2gtiff(array, filename):\n",
    "    \"\"\"\n",
    "    将一个矩阵保存为tiff文件,\n",
    "    这里还可以设置tiff的crs和transofrm。更多，可以查看rasterio的官网或者下面的这个链接\n",
    "    https://gis.stackexchange.com/questions/279953/numpy-array-to-gtiff-using-rasterio-without-source-raster\n",
    "    :param array: shape:(row, col)\n",
    "    :param filename:\n",
    "    :return:\n",
    "    \"\"\"\n",
    "    with rasterio.open(filename, 'w', driver='GTiff',\n",
    "                       height=array.shape[0], width=array.shape[1],\n",
    "                       count=1, dtype=str(array.dtype)) as f:\n",
    "        f.write(array, 1)\n",
    "\n",
    "# test function\n",
    "array2gtiff(array=matrix1, filename=\"结果/test001.tiff\")"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}